import { localStorage } from '@packages/lib-storage';

/**
 * model.state发生变化，会把最新的state存储到缓存
 * model添加到全局state时，可从缓存中读取
 * 以提升页面展示速度
 * @export
 * @param {string} [version='v1']
 * @returns
 */
export function saveModel(version = 'v1') {
    return {
        modelWillInit(initState, { namespace }) {
            return localStorage.getItem(`m:${version}:${namespace}`) || {};
        },
        modelDidUpdate(newState, { namespace }) {
            return localStorage.setItem(`m:${version}:${namespace}`, newState) || newState;
        },
    };
}
